package com.xiaouyudeguang.common.utils;

import java.lang.reflect.Method;

/**
 * <p>
 * 方法操作工具
 * </p>
 *
 * @author 赵光
 * @since 2019年4月8日
 */
public final class MethodUtils {

    /**
     * 获取被代理方法的真实方法
     *
     * @param cls
     * @param method
     * @return
     */
    public static Method getRealMethod(Class<?> cls, Method method) {
        try {
            method = cls.getDeclaredMethod(method.getName(), method.getParameterTypes());
        } catch (Exception e) {
            Class<?> sClass = cls.getSuperclass();
            if (sClass != Object.class) {
                method = getRealMethod(sClass, method);
            }
        }
        return method;
    }

}
